home *** CD-ROM | disk | FTP | other *** search
/ Info-Mac 4 / Info_Mac IV CD-ROM (Pacific HiTech Inc.)(August 1994).iso / Development / General / DR1.#1 PowerPlant ƒ / LView.h < prev    next >
Text File  |  1994-02-10  |  4KB  |  143 lines

  1. // ===========================================================================
  2. //    LView.h                            ©1993 Metrowerks Inc. All rights reserved.
  3. // ===========================================================================
  4.  
  5. #pragma once
  6.  
  7. #include "LPane.h"
  8. #include "LList.h"
  9.  
  10. typedef struct    SViewInfo {
  11.     SDimension32    imageSize;
  12.     SPoint32        scrollPos;
  13.     SPoint32        scrollUnit;
  14.     Int32            reconcileOverhang;
  15. } SViewInfo;
  16.  
  17.  
  18. class    LView : public LPane {
  19. public:
  20.                     LView();
  21.                     LView(const LView &inOriginal);
  22.                     LView(LStream *inStream);
  23.     virtual            ~LView();
  24.     
  25.     virtual void    FinishCreate();
  26.     void            GetImageSize(SDimension32 &outSize);
  27.     void            GetImageLocation(SPoint32 &outLocation);
  28.     void            GetScrollPosition(SPoint32 &outScrollPosition);
  29.     
  30.     void            GetRevealedRect(Rect &outRect);
  31.     void            CalcRevealedRect();
  32.     
  33.     void            CalcPortOrigin();
  34.     
  35.     virtual void    ResizeFrameBy(Int16 inWidthDelta, Int16 inHeightDelta,
  36.                                         Boolean inRefresh);
  37.     virtual void    MoveBy(Int32 inHorizDelta, Int32 inVertDelta,
  38.                                         Boolean inRefresh);
  39.  
  40.     virtual void    SavePlace(LStream *outPlace);
  41.     virtual void    RestorePlace(LStream *inPlace);
  42.  
  43.     virtual void    AdaptToNewSurroundings();
  44.     virtual void    AdaptToSuperFrameSize(Int32 inSurrWidthDelta,
  45.                                     Int32 inSurrHeightDelta,
  46.                                     Boolean inRefresh);
  47.  
  48.     virtual void    Show();
  49.     virtual void    Hide();
  50.  
  51.     virtual void    Activate();
  52.     virtual void    Deactivate();
  53.     
  54.     virtual void    Enable();
  55.     virtual void    Disable();
  56.  
  57.     virtual void    EstablishPort();
  58.     static void        OutOfFocus(LView *inView);
  59.     virtual Boolean    FocusDraw();
  60.     virtual void    Draw(RgnHandle inSuperDrawRgnH);
  61.     virtual RgnHandle    GetLocalUpdateRgn();
  62.     void            SetReconcileOverhang(Boolean inSetting);
  63.     
  64.     virtual void    CountPanels(Uint32 &outHorizPanels,
  65.                                     Uint32 &outVertPanels);
  66.     virtual void    PrintPanel(const PanelSpec &inPanel,
  67.                                     RgnHandle inSuperPrintRgnH);
  68.     virtual void    SuperPrintPanel(const PanelSpec &inSuperPanel,
  69.                                     RgnHandle inSuperPrintRgnH);
  70.  
  71.     virtual Boolean    ScrollToPanel(const PanelSpec &inPanel);
  72.     void            ScrollImageTo(Int32 inLeftLocation, Int32 inTopLocation,
  73.                                     Boolean inRefresh);
  74.     virtual void    ScrollImageBy(Int32 inLeftDelta, Int32 inTopDelta,
  75.                                     Boolean inRefresh);
  76.     virtual void    ScrollBits(Int32 inLeftDelta, Int32 inTopDelta);
  77.     virtual Boolean    AutoScrollImage(Point inLocalPt);
  78.     
  79.     void            ResizeImageTo(Int32 inWidth, Int32 inHeight,
  80.                                     Boolean inRefresh);
  81.     virtual void    ResizeImageBy(Int32 inWidthDelta, Int32 inHeightDelta,
  82.                                     Boolean inRefresh);
  83.     
  84.     void            SetScrollUnit(const SPoint32 &inScrollUnit);
  85.     void            GetScrollUnit(SPoint32 &outScrollUnit) const;
  86.     virtual void    SubImageChanged(LView *inSubView);
  87.     
  88.     virtual LPane*    FindSubPaneHitBy(Int32 inHoriz, Int32 inVert);
  89.     virtual void    Click(SMouseDownEvent &inMouseDown);
  90.     virtual void    AdjustCursor(Point inPortPt,
  91.                                     const EventRecord &inMacEvent);
  92.                                     
  93.     virtual LPane*    FindPaneByID(PaneIDT inPaneID);
  94.     
  95.     virtual Int32    GetValueForPaneID(PaneIDT inPaneID) const;
  96.     virtual void    SetValueForPaneID(PaneIDT inPaneID, Int32 inValue);
  97.     
  98.     virtual StringPtr    GetDescriptorForPaneID(PaneIDT inPaneID,
  99.                                         Str255 outDescriptor) const;
  100.     virtual void    SetDescriptorForPaneID(PaneIDT inPaneID,
  101.                                         ConstStr255Param inDescriptor);    
  102.     
  103.     virtual void    PortToLocalPoint(Point &ioPoint) const;
  104.     virtual void    LocalToPortPoint(Point &ioPoint) const;
  105.     
  106.     void            ImageToLocalPoint(const SPoint32 &inImagePt,
  107.                                         Point &outLocalPt);
  108.     void            LocalToImagePoint(const Point &inLocalPt,
  109.                                         SPoint32 &outImagePt);
  110.  
  111.     void            AddSubPane(LPane *inSub);
  112.     void            RemoveSubPane(LPane *inSub);
  113.     void            DeleteAllSubPanes();
  114.     virtual void    OrientSubPane(LPane *inSub);
  115.     LList&            GetSubPanes();
  116.     
  117.     virtual void    SuperShow();
  118.     virtual void    SuperHide();
  119.     
  120.     virtual void    SuperActivate();
  121.     virtual void    SuperDeactivate();
  122.  
  123.     virtual void    SuperEnable();
  124.     virtual void    SuperDisable();
  125.     
  126. protected:
  127.     RgnHandle        GetUpdateRgn();
  128.     virtual void    ReconcileFrameAndImage(Boolean inRefresh);
  129.     
  130. private:
  131.     static LView    *sInFocusView;
  132.  
  133.     SDimension32    mImageSize;
  134.     SPoint32        mImageLocation;
  135.     SPoint32        mScrollUnit;
  136.     Point            mPortOrigin;
  137.     LList            mSubPanes;
  138.     Rect            mRevealedRect;
  139.     RgnHandle        mUpdateRgnH;
  140.     Boolean            mReconcileOverhang;
  141.  
  142.     void            InitView();
  143. };